package edu.csl.study.springboot.mongo.vo;

import edu.csl.study.springboot.common.kit.DateKit;
import edu.csl.study.springboot.common.kit.StrKit;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.MongoId;

import java.text.ParseException;
import java.util.Date;

@Data
public abstract class MongoBase    {
	   //insert后，这个属性会返回id 
	   @MongoId //不加这个注解也可以。因为属性名称为id，会默认当成_id。
	   protected String id ;
	   protected String startTime = DateKit.getDateTimeStr(new Date());
	   protected String endTime ;
	   protected long cost = 0; //毫秒
	   /**状态 0-失败；1-成功；**/
	   protected String status;
	   protected String statusDesc;

	   public  void  endNow()  {
			setEndTime(new Date());
	   }
	   public  void  setEndTime(Date endTime)  {
			if(endTime != null) {
				this.endTime = DateKit.getDateTimeStr(endTime);
			}
			if(StrKit.isNoEmpty(startTime)  && endTime!= null ) {
				try {
					this.cost = endTime.getTime() - DateKit.parse(startTime, DateKit.YEAR_TO_SECOND).getTime();
				} catch (ParseException e) {
					throw new RuntimeException(e);
				}
			}
		}
		
		public void setStartTime(Date startTime) {
			if(startTime != null) {
				this.startTime = DateKit.getDateTimeStr(startTime);
			}
		}
}


